package cn.imjzm.runcarserve.utils;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.servers.Server;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Arrays;
import java.util.List;

@Configuration
public class Swagger {

    @Bean
    public OpenAPI customOpenAPI() {
        // 创建联系信息
        Contact contact = new Contact()
                .name("开发团队")
                .email("*")
                .url("https://imjzm.cn");

        // 创建许可证信息
        License license = new License()
                .name("MIT License")
                .url("https://opensource.org/licenses/MIT");

        // 创建API信息
        Info info = new Info()
                .title("🚗 小车控制系统 API 文档")
                .version("1.0.0")
                .description("小车控制系统后端接口说明文档，提供完整的API接口说明和测试功能")
                .contact(contact)
                .license(license);

        Server localServer = new Server()
                .url("http://localhost:8080")
                .description("本地开发环境");

        Server prodServer = new Server()
                .url("*")
                .description("云端开发环境");

        List<Server> servers = Arrays.asList(localServer, prodServer);

        return new OpenAPI()
                .info(info)
                .servers(servers);
    }
}